package cn.swust.designpatternlearningplatform.service;

import cn.swust.designpatternlearningplatform.common.Result.PageInfo;
import cn.swust.designpatternlearningplatform.domain.bo.StudentTopicTypeBo;
import cn.swust.designpatternlearningplatform.domain.dto.TopicShieldDto;
import cn.swust.designpatternlearningplatform.domain.entity.Topic;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

public interface TopicShieldService {
    /**
     * 增加屏蔽题
     *
     * @return void
     * @author Tang
     * @date 2023/4/16 0:46
     **/
    void addTopicShield(String studentNumber,List<Integer> topicIds);

    /**
     * 取消屏蔽题
     *
     * @param studentTopicTypeBo
     * @return void
     * @author Tang
     * @date 2023/4/16 0:46
     **/
    @Transactional(rollbackFor = Exception.class)
    void cancelTopicShield(StudentTopicTypeBo studentTopicTypeBo);

    /**
     * 分页返回该学生的屏蔽列表
     *
     * @param studentTopicTypeBo
     * @return java.util.List<cn.swust.designpatternlearningplatform.domain.dto.TopicShieldDto>
     * @author Tang
     * @date 2023/4/16 0:55
     **/
    PageInfo<TopicShieldDto> getTopicShieldList(StudentTopicTypeBo studentTopicTypeBo);
    /**
     * 返回用户屏蔽题的总数量
     * @param studentTopicTypeBo
     * @return java.lang.Integer
     * @author Tang
     * @date 2023/4/19 21:30
    **/
    Integer totalTopicShield(StudentTopicTypeBo studentTopicTypeBo);
}
